package com.renjiyue.Day2;

import java.util.ArrayList;
import java.util.List;

/**
 * List接口的三个实现类
 *    list集合事有序的, 可以有重复的元素,允许有null值
 *    list集合中每个元素都会对应一个索引， 索引是从0 开始
 * 实现类
 *      ArrayList: 底层采用数组结构（可变长度的数组）
 *      Vector： 底层采用数组结构（可变长度的数组）， 线程安全的。
 *      LinkedList： 底层采用双向链表结构, 比较适用查询操作
 *
 *  byte Byte; short  Short; int Integer; long Long
 *  char Character
 *  boolean Boolean
 *  float Float; double Double
 *
 */
public class TestList {

    public static void main(String[] args) {
        List list = new ArrayList();
        //添加元素
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add(1);
        list.add(true);
        list.add('a');
        list.add(0.5);
        list.add(0.5);
        list.add(null);
        list.add(null);
        //在指定的位置添加元素
        //如果索引超出，会出现索引越界异常
        list.add(11, "z");

//        list.remove("a");
        // 'a' unicode编码 是 97
//        list.remove(6);
//        list.remove(new Character('a'));
        //清理所有的元素
        list.clear();
        //判断是否为null
        System.out.println(list.isEmpty());

        System.out.println(list.toString());
        //list.size() 获取list集合的长度
        //list.get(index): 根据索引获取集合中的元素, 索引最大 就是 长度-1
//        for (int i = 0; i < list.size(); i++) {
//            System.out.println(list.get(i));
//        }
        //for(表示元素的类型   集合中的每一个元素  :   集合或者数组   )
//        for (Object o : list){
//            System.out.println(o);
//        }

        //是否包含 字符a元素, 如果包含返回true，否则返回false
//        System.out.println(list.contains('a'));
//        System.out.println(list.contains("b"));


    }
}
